home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_asm / astrsys / strtest.asm < prev    next >
Assembly Source File  |  1989-03-19  |  4KB  |  132 lines

  1.                            PAGE    ,132
  2.                             TITLE   For use with M2S.LIB
  3.  
  4.  
  5.                             DOSSEG
  6.                             .MODEL  SMALL
  7.                             .286
  8.  
  9.  
  10. .STACK
  11.  
  12. .DATA?
  13. WorkArea    db      500 dup(?)          ; working string area
  14.  
  15.  
  16. .XLIST
  17. .DATA
  18. Str1        db  "This is the first string to test for length.",0
  19. Str2a       db  "This is part A of string 2 for ",0
  20. Str2b       db  "an append to this, part B of string 2.",0
  21. Str3a       db  "This string is part A of the ",0
  22. Str3b       db  "concatination process used in this, part B, for testing.",0
  23. Str4        db  "The word EXTRACTED will be taken from this sentence.",0
  24. Str5        db  "This sentence is splitFrom here to eternity.",0
  25. Str6        db  "ThIS wILl CHANGE aLl LeTterS TO LOWERCASE.",0
  26. Str7        db  "we Want all ThESE letter to upperCase.",0
  27. Str8        db  "tHIS Sure aS hELL bETTER be proper when it is done.",0
  28. Str9        db  "   This    is to make    sure  it is,   well , trimmed.",0
  29. .LIST
  30.  
  31.  
  32.  
  33. .CODE
  34.             ASSUME  DS:DGROUP,ES:DGROUP,SS:STACK
  35.  
  36.  
  37. Main        PROC
  38.  
  39.             EXTRN   Length:NEAR, Append:NEAR, Concat:NEAR, Extract:NEAR
  40.             EXTRN   Split:NEAR, LowerCase:NEAR, UpperCase:NEAR
  41.             EXTRN   Proper:NEAR, Trim:NEAR
  42.  
  43.  
  44.             Mov     Ax,DGROUP
  45.             Mov     Ds,Ax       ; Get this address
  46.             Mov     Es,Ax       ; And this
  47.             Call    ClearWORK   ; Clear the work Area
  48.  
  49. ;---- Test of Length
  50.             Lea     Si,Str1     ; Get the address of string 1
  51.             Call    Length      ; See if the length works
  52.             Call    ClearWORK   ; Clear the work Area
  53.                                 ;
  54. ;--- Test of Append
  55.             Lea     Si,Str2a    ; Get part A
  56.             Lea     Di,WorkArea ; Get the address of the work area
  57.             Call    Length      ; Get the length of that first part
  58.             Inc     Ax          ;
  59.             Mov     Cx,Ax       ;
  60.             Rep     Movsb       ; Copy
  61.             Lea     Si,WorkArea ; We needed to displace the string
  62.             Lea     Di,Str2b    ; Address of part b
  63.             Call    Append      ; Append into the work area
  64.             Call    ClearWORK   ; Clear the work Area
  65.                                 ;
  66. ;--- Test of Concat             ;
  67.             Lea     Si,Str3a    ; Get the address of part A
  68.             Lea     Bx,Str3b    ; Part B
  69.             Lea     Di,WorkArea ;
  70.             Call    Concat      ; Concatenate
  71.             Call    ClearWORK   ; Clear the work Area
  72.                                 ;
  73. ;--- Test if Extract            ;
  74.             Lea     Si,Str4     ; Get the string address
  75.             Lea     Di,WorkArea ; This
  76.             Mov     Ax,9        ; Offset is 9 of the word
  77.             Call    Extract     ;
  78.             Call    ClearWORK   ; Clear the work Area
  79.                                 ;
  80. ;--- Test of Split
  81.             Lea     Si,Str5     ; String to split
  82.             Lea     Di,WorkArea ; area to put second half of string
  83.             Mov     Bx,22       ; Split at 22
  84.             Call    Split       ;
  85.             Call    ClearWORK   ; Clear the work Area
  86.                                 ;
  87. ;--- Test of LowerCase
  88.             Lea     Si,Str6     ;
  89.             Lea     Di,WorkArea ;
  90.             Call    LowerCase   ;
  91.             Call    ClearWORK   ; Clear the work Area
  92.                                 ;
  93. ;--- Test of UpperCase
  94.             Lea     Si,Str7     ;
  95.             Lea     Di,WorkArea ;
  96.             Call    UpperCase   ;
  97.             Call    ClearWORK   ;
  98.                                 ;
  99. ;--- Test of Proper             ;
  100.             Lea     Si,Str8     ;
  101.             Lea     Di,WorkArea ;
  102.             Call    Proper      ;
  103.             Call    ClearWORK   ;
  104.                                 ;
  105. ;--- Test of Trim               ;
  106.             Lea     Si,Str9     ;
  107.             Lea     Di,WorkArea ;
  108.             Call    Trim        ;
  109.             Call    ClearWORK   ;
  110.  
  111.             Mov     AX,4C00h    ; exit
  112.             Int     21h         ; Out
  113. Main        Endp
  114.  
  115.  
  116.  
  117.  
  118. ClearWORK   PROC
  119. ;----------- Clears the string work area -------------------------------------;
  120.             Lea     Di,WorkArea
  121.             Mov     Al,0
  122.             Mov     Cx,500
  123.             Cld
  124.             Rep     Stosb
  125.             Ret
  126. ClearWORK   Endp
  127.  
  128.  
  129.  
  130.  
  131.             END     Main
  132.